package com.ar.webSimple.daoImple;

import java.io.Serializable;
import java.util.List;

import com.ar.webSimple.dao.UsuarioDao;
import com.ar.webSimple.entity.Usuario;
import com.ar.webSimple.utils.Constantes;

public class UsuarioDaoImple extends GenericDaoImple implements UsuarioDao{

	@Override
	public void delete(Usuario usuario) {
		usuario.setActivo(Constantes.desactivar);
		getHibernateTemplate().persist(usuario);		
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Usuario> findAll() {
		return getHibernateTemplate().loadAll(Usuario.class);
	}

	@Override
	public Usuario searchById(Serializable id) {
		return (Usuario) getHibernateTemplate().get(Usuario.class, id);
	}

	@Override
	public Usuario searchByUser(String user) {
		StringBuffer query = new StringBuffer();
		
		query.append("FROM "+Usuario.class+" usuario ");
		query.append(" WHERE ");
		query.append(" usuario.activo='S' ");
		query.append(" and ");
		query.append(" usuario.user='"+user+"'");
		
		return (Usuario) getHibernateTemplate().find(query.toString());
	}

	@Override
	public Usuario searchByNombre(String nombre) {
		StringBuffer query = new StringBuffer();
		
		query.append("FROM "+Usuario.class+" usuario ");
		query.append(" WHERE ");
		query.append(" usuario.activo='S' ");
		query.append(" and ");
		query.append(" usuario.user='"+nombre+"'");
		
		return (Usuario) getHibernateTemplate().find(query.toString());
	}

	@Override
	public Usuario searchByApellido(String apellido) {
		StringBuffer query = new StringBuffer();
		
		query.append("FROM "+Usuario.class+" usuario ");
		query.append(" WHERE ");
		query.append(" usuario.activo='S' ");
		query.append(" and ");
		query.append(" usuario.user='"+apellido+"'");
		
		return (Usuario) getHibernateTemplate().find(query.toString());
	}

}
